'''
对列表进行排序,已知列表中的数范围都在0到100之间,设计时间复杂度为O(n)的算法
'''
def count_sort(li,max_count=100):
    count = [0 for _ in range(max_count+1)]
    for val in li:
        count[val] += 1
    li.clear()
    for ind,val in enumerate(count): #当你需要「当前位置编号」时，enumerate()就是最优解
        '''list(enumerate(['X', 'Y']))  
            输出：[(0, 'X'), (1, 'Y')]'''
        for i in range(val):
            li.append(ind)

import random
li = [random.randint(0,100) for _ in range(1000)]
print(li)
count_sort(li)
print(li)